#include <vector>
#include <opencv2/opencv.hpp>
#include <vector>
#include <queue>
#include <stdio.h>
#include <time.h>
#include <string>
#include <iomanip>
#include <sstream>

using namespace cv;
using namespace std;



#define board_width 200.0                           //装甲板尺寸
#define board_length 260.0
//这些是用来识别圆心的相关参数
#define circle_area1 0.45                           //0.84
#define circle_area2 0.21                           //0.49
#define len_ar 16.4                                 //16.4
#define Fans_R 700.0
#define is_anticlockwise 0
#define is_clockwise 1
#define theta1 10.0
#define theta2 12.0                                 //这是我们预判的角度，此角度为与预测值的偏移量
#define time10 0.3                                  //这是我们预留的时间
#define angular_speed 60.0                          //这是小符的转速，60度per second
#define partition_number 24                         //这是在对装甲板中点进行细分的区分面积参数

#define horizon1 0.0                                //以下是八个分界线，这些分界是以角度来区分的
#define horizon2 45.0
#define horizon3 90.0
#define horizon4 135.0
#define horizon5 180.0
#define horizon6 225.0
#define horizon7 270.0
#define horizon8 315.0
#define horizon9 360.0                              //结束



class Energy{
public:
    //
    Mat Contours_out(Mat image, vector<vector<Point>> contours, vector<Vec4i> hierarchy);    

    //
    Mat image_clear(Mat& image);

    //
    Mat Theta_measurement(Mat image, vector<vector<Point>> Fans_contours_out1, vector<vector<Point>> Fans_contours_out2);

};
